home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.table;
-
- import java.awt.Component;
- import java.beans.PropertyChangeListener;
- import java.io.Serializable;
- import javax.swing.JLabel;
- import javax.swing.JTable;
- import javax.swing.event.SwingPropertyChangeSupport;
-
- public class TableColumn implements Serializable {
- public static final String COLUMN_WIDTH_PROPERTY = "columWidth";
- public static final String HEADER_VALUE_PROPERTY = "headerValue";
- public static final String HEADER_RENDERER_PROPERTY = "headerRenderer";
- public static final String CELL_RENDERER_PROPERTY = "cellRenderer";
- protected int modelIndex;
- protected Object identifier;
- protected int width;
- protected int minWidth;
- private int preferredWidth;
- protected int maxWidth;
- protected TableCellRenderer headerRenderer;
- protected Object headerValue;
- protected TableCellRenderer cellRenderer;
- protected TableCellEditor cellEditor;
- protected boolean isResizable;
- protected transient int resizedPostingDisableCount;
- private SwingPropertyChangeSupport changeSupport;
-
- public TableColumn() {
- this(0);
- }
-
- public TableColumn(int var1) {
- this(var1, 75, (TableCellRenderer)null, (TableCellEditor)null);
- }
-
- public TableColumn(int var1, int var2) {
- this(var1, var2, (TableCellRenderer)null, (TableCellEditor)null);
- }
-
- public TableColumn(int var1, int var2, TableCellRenderer var3, TableCellEditor var4) {
- this.modelIndex = var1;
- this.width = var2;
- this.preferredWidth = var2;
- this.cellRenderer = var3;
- this.cellEditor = var4;
- this.minWidth = 15;
- this.maxWidth = Integer.MAX_VALUE;
- this.isResizable = true;
- this.resizedPostingDisableCount = 0;
- this.setHeaderRenderer(this.createDefaultHeaderRenderer());
- this.headerValue = null;
- }
-
- public synchronized void addPropertyChangeListener(PropertyChangeListener var1) {
- if (this.changeSupport == null) {
- this.changeSupport = new SwingPropertyChangeSupport(this);
- }
-
- this.changeSupport.addPropertyChangeListener(var1);
- }
-
- protected TableCellRenderer createDefaultHeaderRenderer() {
- 1 var1 = new 1();
- ((JLabel)var1).setHorizontalAlignment(0);
- return var1;
- }
-
- public void disableResizedPosting() {
- ++this.resizedPostingDisableCount;
- }
-
- public void enableResizedPosting() {
- --this.resizedPostingDisableCount;
- }
-
- public TableCellEditor getCellEditor() {
- return this.cellEditor;
- }
-
- public TableCellRenderer getCellRenderer() {
- return this.cellRenderer;
- }
-
- public TableCellRenderer getHeaderRenderer() {
- return this.headerRenderer;
- }
-
- public Object getHeaderValue() {
- return this.headerValue;
- }
-
- public Object getIdentifier() {
- return this.identifier != null ? this.identifier : this.getHeaderValue();
- }
-
- public int getMaxWidth() {
- return this.maxWidth;
- }
-
- public int getMinWidth() {
- return this.minWidth;
- }
-
- public int getModelIndex() {
- return this.modelIndex;
- }
-
- public int getPreferredWidth() {
- return this.preferredWidth;
- }
-
- public boolean getResizable() {
- return this.isResizable;
- }
-
- public int getWidth() {
- return this.width;
- }
-
- public synchronized void removePropertyChangeListener(PropertyChangeListener var1) {
- if (this.changeSupport != null) {
- this.changeSupport.removePropertyChangeListener(var1);
- }
-
- }
-
- public void setCellEditor(TableCellEditor var1) {
- this.cellEditor = var1;
- }
-
- public void setCellRenderer(TableCellRenderer var1) {
- TableCellRenderer var2 = this.cellRenderer;
- this.cellRenderer = var1;
- if (this.changeSupport != null) {
- this.changeSupport.firePropertyChange("cellRenderer", var2, this.cellRenderer);
- }
-
- }
-
- public void setHeaderRenderer(TableCellRenderer var1) {
- TableCellRenderer var2 = this.headerRenderer;
- if (var1 == null) {
- throw new IllegalArgumentException("Object is null");
- } else {
- this.headerRenderer = var1;
- if (this.changeSupport != null) {
- this.changeSupport.firePropertyChange("headerRenderer", var2, this.headerRenderer);
- }
-
- }
- }
-
- public void setHeaderValue(Object var1) {
- Object var2 = this.headerValue;
- this.headerValue = var1;
- if (this.changeSupport != null) {
- this.changeSupport.firePropertyChange("headerValue", var2, this.headerValue);
- }
-
- }
-
- public void setIdentifier(Object var1) {
- this.identifier = var1;
- }
-
- public void setMaxWidth(int var1) {
- this.maxWidth = Math.max(this.minWidth, var1);
- if (this.width > var1) {
- this.setWidth(var1);
- }
-
- }
-
- public void setMinWidth(int var1) {
- this.minWidth = Math.max(var1, 0);
- if (this.width < var1) {
- this.setWidth(var1);
- }
-
- }
-
- public void setModelIndex(int var1) {
- this.modelIndex = var1;
- }
-
- public void setPreferredWidth(int var1) {
- this.preferredWidth = Math.min(Math.max(var1, this.minWidth), this.maxWidth);
- }
-
- public void setResizable(boolean var1) {
- this.isResizable = var1;
- }
-
- public void setWidth(int var1) {
- int var2 = this.width;
- this.width = Math.min(Math.max(var1, this.minWidth), this.maxWidth);
- if (this.changeSupport != null && this.width != var2) {
- this.changeSupport.firePropertyChange("columWidth", new Integer(var2), new Integer(this.width));
- }
-
- }
-
- public void sizeWidthToFit() {
- Component var1 = this.getHeaderRenderer().getTableCellRendererComponent((JTable)null, this.getHeaderValue(), false, false, 0, 0);
- int var2 = var1.getPreferredSize().width;
- if (var2 > this.getMaxWidth()) {
- this.setMaxWidth(var2);
- }
-
- if (var2 < this.getMinWidth()) {
- this.setMinWidth(var2);
- }
-
- this.setWidth(var2);
- }
- }
-